package kr.hkit.PowerJava.chapter25.chat;

public class QuizProtocol {
   private static final int WAITING = 0;
   private static final int PROBLEM = 1;
   private static final int ANSWER = 2;
   
   private static final int NUMPROBLEMS = 3;//문제 수
   
   private int state = QuizProtocol.WAITING;//현재 상태
   private int currentProblem = 0;          //현재 문제 번호
   
   private String[] problems = {
		   "네트워크 처리 패키지는 ? ",
		   "자바의 최신 버전은 ? ",
		   "인터넷에서 컴퓨터를 식별하는 주소는 ? "
   };
   
   private String[] answers = {"java.io", "1.7", "IP 주소"};
   
   public String process(String theInput){
	   String theOutput = null;
	   
	   switch(state){
		   case QuizProtocol.WAITING:
		   theOutput = "퀴즈를 시작합니다(y/n)";
		   state = QuizProtocol.PROBLEM;
		   break;
		   case QuizProtocol.PROBLEM:
		      if (theInput.equalsIgnoreCase("y")){
		    	  theOutput = problems[currentProblem];
		    	  state = QuizProtocol.ANSWER;		    	  
		      }else{
		    	  state = QuizProtocol.WAITING;
		    	  theOutput = "quit";
		      }
		      break;
		   case QuizProtocol.ANSWER:
			   if(theInput.equalsIgnoreCase(answers[currentProblem])){
		          theOutput = "정답입니다. 계속하시겠습니까?(y/n)";
		          state = QuizProtocol.PROBLEM;
	         }else{
	        	 theOutput = "오답입니다.  계속하시겠습니까?(y/n)";
	        	 state = QuizProtocol.PROBLEM;
	         }
	         currentProblem = (currentProblem+1)%NUMPROBLEMS;
	         break;
   }
   return theOutput;
}
}